Memory disclosure vulnerabilities enable an adversary to successfully mount arbitrary code execution attacks against applications via so-called just-in-time code reuse attacks, even when those applications are fortified with fine-grained address space layout randomization. This attack paradigm requires the adversary to first read the contents of randomized application code, then construct a code reuse payload using that knowledge. While some attempts have been made to prevent code reuse attacks, these attempts fail to prevent just-in-time code reuse attacks.
Accordingly, there exists a need for improved methods, systems, and computer readable media for preventing code reuse attacks.